#include "UnionFind.h"

UnionFind::UnionFind(int n) : m_n(n) {
    for (int i = 0; i < n; i++) {
        m_vSet.push_back(i);
    }
}

int UnionFind::find(int x) {
    if (m_vSet[x] == x)
        return x;
    else
        return find(m_vSet[x]);
}

void UnionFind::merge(int i, int j) {
    m_vSet[find(i)] = find(j);
}

void UnionFind::add(int i, int j) {
    m_vSet[i] = j;
}